#ifndef FRONTCODING_H_
#define FRONTCODING_H_
#include <string>
#include <string>
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <sstream>

#include "../EstructurasArbol/Constantes.h"
using namespace std;

class FrontCoding {
private:
	int distinto;
	int longitud;
	int igual;
	string path;
	int offset;
	string cadena;

	void aplicarFrontCoding(string primerPalabraNodo, string palabra);

	void obtenerOffset(string primerPalabraNodo);

	void grabarAlFinal(string primerPalabraNodo);

	string obtenerPalabra();

public:
	FrontCoding(string ruta);

	virtual ~FrontCoding();
    string getCadena() const{
        return cadena;
    }

    int getDistinto() const{
        return distinto;
    }

    int getIgual() const{
        return igual;
    }

    void setCadena(string cadena){
        this->cadena = cadena;
    }

    void setDistinto(int distinto){
        this->distinto = distinto;
    }

    void setIgual(int igual){
        this->igual = igual;
    }

    string establecerFrontCoding(string primerPalabraNodo, string palabra);

    string interpretarFrontCoding(string frontCoding);
};

#endif /* FRONTCODING_H_ */
